package com.leyou.search.service;

import com.leyou.search.dto.SearchParamDTO;
import com.leyou.search.entity.Goods;
import com.leyou.starter.elastic.entity.PageInfo;
import reactor.core.publisher.Mono;

import java.util.List;
import java.util.Map;

/**
 * @ClassName : SearchServiceImpl  //类名
 * @Description :   //描述
 * @Author : qingfeng  //作者
 * @Date: 2020-09-19 19:00  //时间
 */
public interface SearchService {
    //创建索引库并设置映射
    void createIndexAndMapping();
    //加载数据到索引库
    void loadData();
    //根据输入内容提示
    Mono<List<String>> getSuggestion(String key);
    //分页查询商品数据
    Mono<PageInfo<Goods>> searchGoods(SearchParamDTO request);
    //查询过滤项
    Mono<Map<String, List<?>>> getFilters(SearchParamDTO param);
    //新增一个商品到索引库
    void saveGoodsById(Long id);
    //从索引库删除一个商品
    void deleteGoodsById(Long id);
}
